﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Krile
{
    public class KrileFatalException : Exception
    {
        public KrileFatalException(string message)
            : base(message) { }

        public override string Message
        {
            get
            {
                return "FATAL ERROR WAS OCCURED IN Krile:" + base.Message;
            }
        }
    }

    public class KrileCoreException : Exception
    {
        public KrileCoreException(string message)
            : base(message) { }

        public override string Message
        {
            get
            {
                return "FATAL ERROR WAS OCCURED IN Krile CORE SYSTEM:" + base.Message;
            }
        }
    }

    public class KrileManagementException : Exception
    {
        public KrileManagementException(string message)
            : base(message) { }

        public override string Message
        {
            get
            {
                return "Some error was occured in Krile." + Environment.NewLine + 
                    "This is not a fatal exception." + Environment.NewLine +
                    "However, there is some possibility to exert some influences on the operation of Krile." + Environment.NewLine +
                    "Detail:" + base.Message;
            }
        }
    }

    public class KrilePluginExecutionException : Exception
    {
        public KrilePluginExecutionException(string message)
            : base(message) { }
        public override string Message
        {
            get
            {
                return "Some error was occured in Krile plug-in manager:" + base.Message + Environment.NewLine +
                    "[Note:This exception sometimes occured by installed plug-in." + Environment.NewLine +
                    "So,I suggest examining installed plug-in.]";
            }
        }
    }

    public class KrileStrictCheckException : Exception
    {
        public KrileStrictCheckException(string message)
            : base(message) { }

        public override string Message
        {
            get
            {
                return
@"Strict check failured.
You can continue to using Krile,but it will be occur fatal error.
So,I suggest you shutdowning Krile soon.
Detail:" + base.Message;
            }
        }
    }
}
